home *** CD-ROM | disk | FTP | other *** search
- WarpSearch_BBS V2.7 Documentation
-
-
- Introduction
- ------------
- This is the AmiExpress version of WarpSearch.
- It uses the boyer-moore search algorithm implemented in assembler code.
- This algorithm is the fastest available.
-
-
- Revision History
- ----------------
- Features
- --------
- V1.0:
- -pattern matching
- -asynchonous I/O
- -backwards/forwards counting of filelists
- -highlightning
-
- V2.0:
- -now real reverse search (search code / buffer loading / dir counting)
- -residentable
- -DMA optimized
- -prompts always behind complete descriptions
- -simple flagging, also "f file1.lha f file2.lha"
- -ndirs file is used to be s-express compatible if no ndirs tooltype exists
- -colors for the description output
- -configurable via tooltypes (of the WarpSearch executable) or WarpSearch.config file
- tooltypes override file config
-
- V2.1:
- -bugfixed V2.0
- If there were escape codes in the text of a file description the line was
- repeated in an infinite loop but you were able to quit the program at the
- prompt. No memory trashes or similar occured. This is fixed now. A harmless
- byte read from adress 0 in the shell version was wiped out too.
-
- V2.3:
- -added prompts if no args at start specified in bbs version
- -speedup due to asm code improvement and faster resource allocations (unbelieveable but true)
- -wildcard problem fixed
- -help rewritten
-
- V2.5
- -tag mode with scrolling
- -rewritten parse routine
- -some little fixes
-
- V2.7
- -changed date to amigadate
- -faster code due to optimized initialisation of load buffers
- -more error checking
-
- V2.7.1
- -bugfix for 36 nodes (only 10 nodes were supported before)
-
- Installation
- ------------
- Copy "z.info" to "bbs:commands/bbscmd/".
- Change LOCATION to your full path of the WarpSearch executable.
- Adjust configuration if you like.
-
-
- Usage
- -----
-
- V2.5 introduces standard amiga command line parsing
-
- This way you can search for spaces. z " scoopex" a -
- (enclose the pattern with " if the pattern includes blanks)
-
- If you want to search for a pattern including " you have to use an asterix
- (*) char to override the special meanings of ".
-
- You can check how your pattern was parsed if you look at the last line of the
- search process:
- Displayed 7 descriptions that match the pattern ".
-
- In this example line " *"" was parsed to (space").
-
- You have to add an asterix char (*) if you want to search for a pattern that
- looks like a command line switch, like "-", so you have to write
-
- z *- a - (or z -* a -)
-
- instead of
-
- z - a -
-
- to search in all dirs reverse for the pattern "-".
-
-
- You can write the command line in any order; e.g.
-
- z *- a -
-
- and
-
- z a - *-
-
- and
-
- z - a *-
-
- and so on are equal.
-
- Note, the above command line lets you search for all files new to old.
-
-
- Switches are the templates with the /S appended.
-
- z /M,a=all/S,u=uldir/S,-=reverse/S,r=reverse/S,ns=nonstop/S,?=help/S
-
- backwards compatible to /X z door:
-
- Example usage:
- "z foo" (searches in upload dir for "foo" forwards).
- "z foo r" (searches in upload dir reverse).
-
- "z foo 3 r" (searches in dir3 reverse).
- "z foo a" (searches from dir1 up for "foo").
-
- "z foo a -" (searches from upload dir down for "foo" and searches reverse).
- "z foo 2" (searches in dir2 only for "foo").
-
- Wildcards in pattern are allowed, like "z foo*bar" or "z warp*V1.0*"
- Use "z foo*bar 2 +" to search from dir2 upwards. Default is downwards search.
- The pattern must match an expression in one line.
- Patterns are not case sensitive. Only "*" is accepted as a wildcard and no
- other constructions like "#?","?" , which noone needs anyway in this application.
-
- Use "z ?" for short help.
-
- Known Bugs
- ----------
- In V2.5 FLAG_COLOR tooltype must be exactly 5 chars long.
-
- Info
- ----
- Due to the boyer-moore algorithm the longer the pattern (w/o wildcards)
- the shorter the search time.
-
- The complete filedescription including filename etc. is searched through.
- We, the authors, think that this magic code is the fastest search routine ever
- made for an /X like filelist, because the 100% assembler boyer-moore search
- routine with pattern matching and highlightning is optimized for cpu cycles by
- hand, some magic is done for splitted filedescriptions, asychronous I/O
- optimized even for 68040. (cache flushing problem)
-
- On our system the bottleneck is the Fast-SCSI-II Baracuda drive with a
- Fast-SCSI-II CyberSCSI Controller that does 7MB/s, and the code is 3 times
- faster if the filelist is in RAM with 50MB/s burst.
-
- The maximum length of a description line allowed is 1000 chars. Since /X
- allows 80 chars/line as maximum we think this is no bug. If a line is longer
- than 1000 chars enforcer hits may occur. A check for line length would slow
- down the code significantly. That`s why we don`t do it.
-
- For those who are interested, a short explanation of what "double buffered
- async I/O" means:
- Due to the coolness of the Amiga, SCSI is the most accepted standard on this
- platform (..well if we dont consider 4000 desktops..). SCSI has the ability
- to transfer data per DMA, thus meaning without using the processor. This is
- were async I/O comes in. A program using double buffered async I/O lets the
- filesystem first fill up one buffer, then sends the request to fill up the
- second buffer, and while the HD is busy transfering data to the 2nd buffer the
- processor is free to do its work on the first one. As you can imagine this
- technique dramatically speeds up the whole process.
-
- Shell version now included.
-
- A pseudo door that calls the door to be debugged is now developed. This way you
- can use SAS/C`s debugger cpr easily. If you need it just ask.
-
- Send your suggestions or bug reports to crayor@cs.tu-berlin.de or
- dres@cs.tu-berlin.de.
-
- Reverse search is quite slow, because the seeking in the filelist (which is
- even asynchronous) takes 87% of the execution time on Crayor`s system (060&
- CyberScsi). Use a cache program like DynamiCache V1.02 by Christopher A. Wolf
- with big memory values to make reverse search as fast as forwards search.
-
- Maybe a scsi RAID system could be a good solution for reverse searching too,
- if you have one please contact Crayor!
-
- For the Amiga a "mini raid system" for 2 equal drives is available. If you have
- this please contact Crayor. It seems to be software transparent and looks like
- just one scsi drive as I was told. This should almost double average transfer
- speeds.
-
- Memory Requirements
- -------------------
- Approx. 2*blocksize*100 bytes which is about 100k for load buffers plus 20k
- for print buffer plus code size
- (blocksize is usually 512 bytes)
-
- AmiExpress3.38 needs approx. 200k to run it.
-
- For the screen buffer for tag mode add some k. They are needed even if you
- don`t use tag mode.
-
- Currently the last 150 screen lines are buffered for tag mode.
-
- Greetz
- ------
- Some hellos to the following guys:
-
- "Ibo" - with his always busy or down BBS, so that we weren`t able to abuse
- his BBS for beta testing ;)
- Thx for reporting a little bug.
-
- Hijack - thx for the cool name of this door m8. (yep! "WarpSearch" actually was
- his idea)
-
- SCSI - for his help on using iwan.device and other help
-
- Amok - for the address of Mr.F
-
- STC - for the competition of coding the fastest search code for /X filelists
-
- Hydra - for still developing hbbs
-
- Dave Haynie
- - for answering my several emails
-
- The Baron (Mats N.)
- - for reporting the (minor!?) esc-code bug in V2.0 that leeded to V2.1
-
- shadower (M. R. T.)
- - for some good suggestions for V2.1
-
- Ted - for the Warp animation!
-
-
- Looking for good beta testers!
-
- Check the aminet for the MUI and shell versions in /comm/amiex !!
-